<?php
/**
 * truonghoanglinh@livisoft.com
 * Định nghĩa hằng
 */

/*
 * Đọc config
 */
function read_config($filename){
	$data = file($filename);
	if(!$data){
		return false;
	}
	return json_decode($data[0],true);
}

/*
 * Ghi config
 */
function write_config($filename,$data){
	$data = json_encode($data);
	if(!file_put_contents($filename, $data)){
		return false;
	}
	return true;
}

if(!defined('CONFIG_DEFINED_ONCE')) {

	// Thiết lập cờ (flag) để đảm bảo hằng nạp 1 lần
	define('CONFIG_DEFINED_ONCE', true);

	//Định nghĩa đường dẫn cơ bản
	define("DS", '/');
	define('BASE_URL', 'http:'.DS.DS.$_SERVER['SERVER_NAME'].DS);
	define('USER_AGENT', $_SERVER['HTTP_USER_AGENT']);
	define('IP', $_SERVER['REMOTE_ADDR']);
	define('ROOT_PATH', dirname( __FILE__ ).DS);
	define("PATH_INCLUDES", ROOT_PATH.'includes'.DS);
	define("PATH_LANGUAGES", ROOT_PATH.'languages'.DS);
	define("PATH_CONTROLLERS", ROOT_PATH.'controllers'.DS);
	define("PATH_MODELS", ROOT_PATH.'models'.DS);
	define("PATH_CONFIG", ROOT_PATH.'config'.DS);
	define("PATH_LOGS", ROOT_PATH.'logs'.DS);


	//Định nghĩa tiền tố và hậu tố
	define('PREFIX', 'lvs_');
	define('SUFFIX', '.php');

	//Định nghĩa kết nối CSDL
	define('DB_TYPE', 'mysql');
	define('DB_HOST', 'localhost');
	define('DB_DATABASE', 'livisoft');
	define('DB_USER', 'root');
	define('DB_PASSWORD', '');
	define('DB_PORT', '3306');

	//SQL cache
	define('SQL_CACHE_TIME_OUT', 24);
	define('SQL_CACHE_DIR', ROOT_PATH.'cache_sql');
	define('SQL_USE_DISK_CACHE', false);
	define('SQL_CACHE_QUERIES', false);

	//Cấu hình smarty
	define('DEBUG', false);
	define('CACHE', false);
	define('TIME_CACHE', 120);
	define("PATH_TEMPLATES", ROOT_PATH.'templates'.DS);
	define('PATH_TEMPLATES_C', ROOT_PATH.DS."templates_c".DS);
	define('PATH_PLUGIN', PATH_INCLUDES.'plugins'.DS);
	define('PATH_CACHE', ROOT_PATH.DS."cache".DS);
	define("BASE_PATH_TEMPLATES", BASE_URL.'templates'.DS);
	define("BASE_PATH_CSS", BASE_PATH_TEMPLATES.'css');
	define("BASE_PATH_JS", BASE_PATH_TEMPLATES.'js');
	define("BASE_PATH_IMAGES", BASE_PATH_TEMPLATES.'images');

	//Định nghĩa các bảng
	define('TBL_USERS', PREFIX.'users');
	define('TBL_CONTENT', PREFIX.'content');
	define('TBL_CATEGORIES', PREFIX.'categories');
	//Định nghĩa các view
	define('TBL_VIEW_CONTENT', PREFIX.'view_content');
	define('TBL_VIEW_CATEGORIES', PREFIX.'view_categories');
	define('TBL_VIEW_USERS', PREFIX.'view_users');


	//Định nghĩa contronller
	$controllers = read_config(PATH_CONFIG.'list_controller.json');


	//Định nghĩa chung
	define('VIEW_DEBUG', true);
	define('MENMORY_LIMIT', '50M');
	define('LIMIT', 20);
	define('QUERY_STRING', substr($_SERVER['REQUEST_URI'],1));
	define('QUERY_STRING_FULL', BASE_URL.QUERY_STRING);
	define('LANG', isset($_GET['lang']) ? '_'.$_GET['lang'] : '_vi');
	define("URL_REDIRECT", BASE_URL.'?'.'module=');
	define('SALT', '99df4ec1f394260eb4129b10f118bf0b');

	//url redirect
	$url_redirect = array('admin' => URL_REDIRECT.'admin',
						  'admin_login' => URL_REDIRECT.'admin_login',
						  'admin_control_panel' => URL_REDIRECT.'admin_control_panel',
						  'admin_info_config' => URL_REDIRECT.'admin_info_config',
						  'admin_cache' => URL_REDIRECT.'admin_cache',
						  'admin_contact' => URL_REDIRECT.'admin_contact');
}
?>